<?php 
class Session{

	// Constructeur qui demarre une session si ce n'est pas déjà fait
	public function __construct(){
		if (!isset($_SESSION)){
			session_start();
		}
	}

	/**
	 * Enregistre un message en session
	 * @param $msg message que l'on veux passer
	 * @param $type type de message (bootstrap) comme success, alert, danger
	 */
	public function setFlash($msg, $type = 'success'){
		$_SESSION['flash'] = array(
			'message' => $msg,
			'type' => $type
		);
	}

	/**
	 * Affiche un message passé en session
	 */
	public function flash(){
		if (isset($_SESSION['flash']['message'])){
			$html = '<center><div class="alert-box '.$_SESSION['flash']['type'].'" >'.$_SESSION['flash']['message'].'</div></center>';
			$_SESSION['flash'] = array();
			return $html;
		}
	}

	/**
	 * Modifie une variable de session
	 */
	public function write($key, $value){
		$_SESSION[$key] = $value;
	}

	/**
	 * Retourne la valeur contenue en session s'il y en a une
	 */
	public function read($key = null){
		if ($key){
			if (isset($_SESSION[$key])){
				return $_SESSION[$key];
			}
			else{
				return false;
			}
		}
		else{
			return $_SESSION;
		}
	}

	public function loggin($id, $niveau = 0){
		if (!isset($_SESSION)){
			session_start();
		}

		if ( !isset($_SESSION['User']) || empty($_SESSION['User']['id']) && empty($_SESSION['User']['niveau']) ){

			$_SESSION['User'] = array(
			'id' => $id,
			'niveau' => $niveau
			);
		}
		else {
			return false;
		}
	}

	/**
	 * Vérifie si un utilisateur est loggé
	 */
	public function isLogged(){
		if ( isset($_SESSION['User']['id']) ) {
			return true;
		}
		else {
			return false;
		}
	}

	public function logout(){
		session_destroy();
		session_unset();
	}

	
	public function user($key){
		if ($this->read('User') !== null){
			if (isset($this->read('User')->$key)){
				return $this->read('User')->$key;
			}
			else{
				return false;
			}
		}
		return false;
	}
}
?>